package com.bestcem.xm.member.dao.mapper;

import com.bestcem.xm.member.entity.mysql.SourceCardEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @date 2021/9/22 15:08
 */
@Mapper
public interface SourceCardMapper {

    /**
     * 统计来源名片
     *
     * @param orgId    企业标识
     * @param memberId 联系人标识
     * @return long
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 11:43
     */
    long count(@Param("orgId") String orgId, @Param("memberId") String memberId);

    /**
     * 根据联系人标识查询来源名片列表
     *
     * @param memberId 联系人标识
     * @return java.util.List<com.bestcem.xm.member.entity.mysql.SourceCardEntity>
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 13:15
     */
    List<SourceCardEntity> findByMid(@Param("memberId") String memberId);

    /**
     * 保存来源名片信息
     *
     * @param sourceCardEntity 来源名片信息
     * @return int 新增的结果
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 13:25
     */
    int insert(SourceCardEntity sourceCardEntity);

    /**
     * 批量保存来源名片信息
     *
     * @param sourceCardEntities 来源名片信息集合
     */
    int batchCreate(List<SourceCardEntity> sourceCardEntities);

    /**
     * 根据联系人标识和来源查询来源名片
     *
     * @param memberId 联系人标识
     * @param source   来源
     * @return com.bestcem.xm.member.entity.mysql.SourceCardEntity
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 13:35
     */
    SourceCardEntity findByMidAndSource(@Param("memberId") String memberId, @Param("source") Integer source);

    /**
     * 根据联系人标识和来源更新来源名片信息
     *
     * @param memberId         联系人标识
     * @param source           来源
     * @param sourceCardEntity 需要更新的来源名片信息
     * @return int
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 13:36
     */
    int updateByMidAndSource(@Param("memberId") String memberId, @Param("source") Integer source, @Param("sourceCardEntity") SourceCardEntity sourceCardEntity);

    /**
     * 根据联系人标识和公司标识分页查询来源名片列表
     *
     * @param memberId 联系人标识
     * @param orgId    公司标识
     * @param offset   偏移量
     * @param pageSize 页大小
     * @return java.util.List<com.bestcem.xm.member.entity.mysql.SourceCardEntity>
     * @author cuiqiongyu <qiongyu.cui@idiaoyan.cn>
     * @date 2021/10/11 13:55
     */
    List<SourceCardEntity> findPageByMidAndOrgId(@Param("memberId") String memberId, @Param("orgId") String orgId,
                                                 @Param("offset") int offset, @Param("pageSize") int pageSize);

}
